package com.mhkjup.artcircle.service.impl;
//package com.mhkjup.artcircle.service.impl;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import javax.annotation.Resource;
//
//
//import org.springframework.stereotype.Service;
//
//import ysq.weixin.model.UserEntity;
//
//import com.mhkjup.artcircle.dao.AdminDao;
//import com.mhkjup.artcircle.dao.CheckCodeDao;
//import com.mhkjup.artcircle.dao.OrderDao;
//import com.mhkjup.artcircle.dao.UserDao;
//import com.mhkjup.artcircle.db.CheckCodeDB;
//import com.mhkjup.artcircle.db.NewAgentDB;
//import com.mhkjup.artcircle.db.UserDB;
//import com.mhkjup.artcircle.model.ResponseMessage;
//import com.mhkjup.artcircle.service.UserService;
//import com.mhkjup.artcircle.util.ShortMessageUtil;
//import com.mhkjup.artcircle.util.TimeUtil;
//
//@Service
//public class UserServiceImpl extends EhCacheService implements UserService {
//	@Resource(name = "userDao")
//	private UserDao userDao;
////	@Resource(name = "checkCodeDao")
////	private CheckCodeDao checkCodeDao;
////	@Resource(name = "orderDao")
////	private OrderDao	orderDao;
////	@Resource(name = "adminDao")
////	private AdminDao adminDao;

//
//	@Override
//	public ResponseMessage getUserByUserId(String userId) {
//		ResponseMessage rm = new ResponseMessage(401, "token已过期！", null);
//		UserDB userDB = userDao.getUserByOpenId(userId);
//		if (userDB != null) {
//			Map<String, Object> map = new HashMap<String, Object>();
//			map.put("userDB", userDB);
//			return new ResponseMessage(200, "获取成功", map);
//		}
//		return rm;
//	}
//	/**
//	 * 获取代理授权信息
//	 */
//	@Override
//	public ResponseMessage getAuthorizationByUserId(String toKen, int userId) {
//		if (userId != 0) {
//			UserDB userDB = userDao.getUserDB(userId);
//			if (userDB != null) {
//				Map<String, Object> map = new HashMap<String, Object>();
//				map.put("userDB", userDB);
//				return new ResponseMessage(200, "获取成功", map);
//			}
//		}
//		return null;
//	}
//
//	@Override
//	public ResponseMessage getUserSubordinateList(String openId) {
//		UserDB userDBss = userDao.getUserByOpenId(openId);
//		// 获取下一集所有成为总代理的人数
//		// 获取下一级的总人数
//		Map<String, Object> map = new HashMap<String, Object>();
//		map.put("zdl", userDao.getUserCountLower(userDBss.getUserId()));
//		List<UserDB> listUser = userDao.getUserLowerByUserId(userDBss
//				.getUserId());
//		int lowrAcount = 0;
//		int ThreeAcount = 0;
//		for (UserDB userDB : listUser) {
//			List<UserDB> lowrUserList = userDao.getUserLowerByUserId(userDB
//					.getUserId());
//			for (UserDB userDB2 : lowrUserList) {
//				List<UserDB> lowrUserLista = userDao
//						.getUserLowerByUserId(userDB2.getUserId());
//				ThreeAcount += lowrUserLista.size();
//			}
//			lowrAcount += lowrUserList.size();
//		}
//		// 总代理人数 不包括一级里面的总代理
//		map.put("yjdl", listUser.size());
//		// 二级代理
//		map.put("ejdl", lowrAcount);
//		// 三级代理
//		map.put("sjdl", ThreeAcount);
//		return new ResponseMessage(200, "获取成功", map);
//	}
//
//	@Override
//	public ResponseMessage getLowrUserByOpenId(String openId, int type) {
//		  int userId=userDao.getUserByOpenId(openId).getUserId();
//		Map<String, Object> map = new HashMap<String, Object>();
//		if (userId != 0) {
//			if (type == 0) {
//				map.put("userDB", userDao.getUserDB(userId));
//
//				map.put("userLowerDB", userDao.getUserLowerZDL(userId));
//
//				return new ResponseMessage(200, "获取成功", map);
//			} else if (type == 1) {
//				// 获取所有一级代理信息
//				map.put("userDB", userDao.getUserLowerByUserId(userId));
//				return new ResponseMessage(200, "获取成功", map);
//			} else if (type == 2) {
//				// 获取二级代理的所有信息
//				List<UserDB> ListUser = userDao.getUserLowerByUserId(userId);
//				List<UserDB> ListuserDB = new ArrayList<UserDB>();
//				for (UserDB userDB : ListUser) {
//					List<UserDB> listuser = userDao.getUserLowerByUserId(userDB
//							.getUserId());
//					for (UserDB userDB2 : listuser) {
//						ListuserDB.add(userDB2);
//					}
//				}
//				map.put("userDB", ListuserDB);
//				return new ResponseMessage(200, "获取成功", map);
//			} else if (type == 3) {
//				// 获取所有三级代理的全部信息
//				List<UserDB> ListUser = userDao.getUserLowerByUserId(userId);
//				List<UserDB> ListuserDB = new ArrayList<UserDB>();
//				for (UserDB userDB : ListUser) {
//					List<UserDB> listuser = userDao.getUserLowerByUserId(userDB
//							.getUserId());
//					for (UserDB userDB2 : listuser) {
//						List<UserDB> listuser2 = userDao
//								.getUserLowerByUserId(userDB2.getUserId());
//						for (UserDB userDB3 : listuser2) {
//							ListuserDB.add(userDB3);
//						}
//					}
//				}
//				map.put("userDB", ListuserDB);
//				return new ResponseMessage(200, "获取成功", map);
//			} else {
//				return new ResponseMessage(401, "获取失败", map);
//			}
//		}
//		return null;
//	}
//
//	
//
//	// @Resource(name = "adminDao")
//	// private AdminDao adminDao;
//	//
//	// @Override
//	// public ResponseMessage login(AdminDB admin) {
//	//
//	// ResponseMessage rm = new ResponseMessage(401, "验证码错误！", null);
//	// if (LogonUtils.checkNumber(admin.getToken())) {// 如果验证码正确
//	// AdminDB adminDB = adminDao.getAdminByName(admin.getUsername());
//	// if (adminDB != null) {// 如果用户不为空
//	// String old_token = adminDB.getToken();
//	// if (adminDB.getPassword().equals(
//	// MD5Util.md5(admin.getPassword()))) {// 如果密码匹配
//	// String token = TokenUtil.getToken(admin.getUsername());
//	// adminDB.setToken(token);
//	// if (adminDao.updTokenByName(adminDB) != 0) {// token更新成功
//	// if (getCacheElement(old_token) != null) {
//	// delElementByKey(old_token);
//	// }
//	// // 保存用户信息到缓存
//	// addToCache(token, adminDB);
//	// rm.setCode(200);
//	// rm.setMsg("登录成功！正在转跳中...");
//	// Map<String, Object> map = new HashMap<String, Object>();
//	// map.put("token", token);
//	// map.put("username", adminDB.getUsername());
//	// rm.setData(map);
//	// }
//	// } else {
//	// rm.setCode(403);
//	// rm.setMsg("密码错误！");
//	// }
//	// } else {
//	// rm.setCode(402);
//	// rm.setMsg("用户名错误！");
//	// }
//	// }
//	// return rm;
//	// }
//	//
//	// @Override
//	// public ResponseMessage updPassword(String token, String oldpass,
//	// String newpass) {
//	//
//	// ResponseMessage rm = new ResponseMessage(401, "原密码不正确！", null);
//	// String opass = getAdmin(token).getPassword();
//	// String apass = MD5Util.md5(oldpass);
//	// if (opass.equals(apass)) {// 如果输入密码和原密码一致
//	// if (adminDao.updPassword(token, MD5Util.md5(newpass)) != 0) {
//	// rm.setCode(200);
//	// rm.setMsg("修改成功！请重新登录！");
//	// }
//	// }
//	// return rm;
//	// }
//	//
//	// @Override
//	// public Map<String, Object> getUser(int page, int rows, String userName,
//	// String mobile, String isForbid, String type) {
//	// Map<String, Object> map = new HashMap<String, Object>();
//	// map.put("curRow", (page - 1) * rows);
//	// map.put("type", type);
//	// map.put("size", rows);
//	// map.put("userName", "%" + ParameterUtil.getStr(userName) + "%");
//	// map.put("mobile", "%" + ParameterUtil.getStr(mobile) + "%");
//	// map.put("isForbid", ParameterUtil.checkInteger(isForbid));
//	// List<UserDB> users = adminDao.getUser(map);
//	// if (users != null && !users.isEmpty()) {
//	// List<User> list = new ArrayList<User>();
//	// for (UserDB user : users) {
//	// Map<String, Object> map1 = new HashMap<String, Object>();
//	// map1.put("id", user.getType());
//	//
//	// if (!user.getType().equals("0")) {
//	// user.setType(adminDao.getUserTypeByTypeId(map1));
//	//
//	// } else {
//	// user.setType("未定义");
//	// }
//	// list.add(user.toModel());
//	// }
//	// Map<String, Object> result = new HashMap<String, Object>();
//	// result.put("total", adminDao.getUserCount(map));
//	// result.put("rows", list);
//	// return result;// 这个就是你在ajax成功的时候返回的数据，我在那边进行了一个对象封装
//	// }
//	// Map<String, Object> result = new HashMap<String, Object>();
//	// result.put("total", "0");
//	// result.put("rows", users);
//	// return result;
//	// }
//	//
//	/**
//	 * 登录接口
//	 */
//	
//	@Override
//	public ResponseMessage login(String phone, String openId, int code) {
//
//		ResponseMessage rm = new ResponseMessage(402, "验证码失效或者已过期", null);
//		String createTime = TimeUtil.getCurrentTimeSceond();
//		CheckCodeDB checkCodeDB = new CheckCodeDB();
//		checkCodeDB.setMobile(phone);
//		CheckCodeDB checkDB = checkCodeDao.getCheckCode(checkCodeDB);
//		if (checkDB != null) {
//			boolean bol = TimeUtil.compDate(checkDB.getAffectiveTime(),
//					createTime);
//			if (bol && code == checkDB.getCheckCode()) {
//				
//				Map<String, Object> map=new HashMap<String, Object>();
//				UserDB   userDB=adminDao.getUserByPhone(phone);
//				if(userDB!=null)
//				{
//					rm.setCode(402);
//					rm.setMsg("用户不存在");
//				}
//				NewAgentDB newAgentDB=userDao.getNewAgetByUserNewAgentId(userDB.getNewAgentId());
//				if(newAgentDB!=null)
//				{
//					userDao.updateUserByWeiXin(phone, openId);
//					UserDB userDBs=userDao.getUserByOpenId(openId);
//					map.put("userDB", userDBs);
//					rm.setCode(200);
//					rm.setMsg("手机号绑定成功");
//				}
//				else{
//					rm.setCode(401);
//					rm.setMsg("未被邀请");
//				}
//			}
//		}
//
//		return rm;
//	}
//
//	@Override
//	public ResponseMessage upUser(String openId, String userName,
//			String address, String sex) {
//		ResponseMessage rm=new ResponseMessage(401,"没有根据oepnId查到用户",null);
//		UserDB userDB=	userDao.getUserByOpenId(openId);
//		if(userDB!=null)
//		{
//			Map<String, Object> map=new HashMap<String, Object>();
//				userDB.setUserName(userName);
//				userDB.setAddress(address);
//				userDB.setSex(Integer.parseInt(sex));
//				if(userDao.upUser(userDB)>0){
//					map.put("userDB", userDB);
//					return new ResponseMessage(200,"修改成功",map);
//				}
//				return new ResponseMessage(401,"修改失败",map);
//			
//		}
//		return rm;
//	}
//	@Override
//	public ResponseMessage upUser(String openId, String name, String mohe) {
//		ResponseMessage rm=new ResponseMessage(401,"没有根据oepnId查到用户",null);
//		UserDB userDB=	userDao.getUserByOpenId(openId);
//		if(userDB!=null)
//		{
//			Map<String, Object> map=new HashMap<String, Object>();
//			userDB.setCreditName(name);
//			userDB.setCreditNumber(mohe);
//				if(userDao.upUserCredi(userDB)>0){
//					map.put("userDB", userDB);
//					return new ResponseMessage(200,"修改成功",map);
//				}
//				return new ResponseMessage(401,"修改失败",map);
//			
//		}
//		return rm;
//	}
//
//	@Override
//	public ResponseMessage getUserCoke(String phone, int type) {
//		ResponseMessage rm = new ResponseMessage();
//		CheckCodeDB checkCodeDB = new CheckCodeDB();
//		checkCodeDB.setMobile(phone); // 电话号码
//		int userCount = userDao.getUserCountByMobile(phone);
//		int minute = 10; // 10分钟有效
//		int code = ShortMessageUtil.checkCode(); // 获取验证码
//		CheckCodeDB teleCodeDB = checkCodeDao.getCheckCode(checkCodeDB);// 判断该电话号码是否存入验证码
//		checkCodeDB.setCheckCode(code); // 验证码
//		String createTime = TimeUtil.getCurrentTimeSceond();
//		checkCodeDB.setCreateTime(createTime); // 创建时间
//		String affectiveTime = TimeUtil.getAfterTenTimeSceond(minute);
//		checkCodeDB.setAffectiveTime(affectiveTime); // 有效时间
//		if (type == 3) {
//			rm = this.checkCodeToMe(teleCodeDB, checkCodeDB, phone, code);
//		} else if (userCount != 0) {// 如果发现该用户
//			rm.setCode(402);
//			rm.setMsg("手机号码已存在");
//			if (type == 2) {// 忘记密码
//				rm = this.checkCodeToMe(teleCodeDB, checkCodeDB, phone, code);
//			}
//		} else {// 如果不存在该用户
//			rm.setCode(403);
//			rm.setMsg("手机号码不存在");
//			if (type == 1) {// 注册，绑定手机
//				rm = this.checkCodeToMe(teleCodeDB, checkCodeDB, phone, code);
//			}
//		}
//		return rm;
//	}
//
//	public ResponseMessage checkCodeToMe(CheckCodeDB teleCodeDB,
//			CheckCodeDB checkCodeDB, String mobile, int code) {
//
//		ResponseMessage rm = new ResponseMessage();
//		if (teleCodeDB == null) {// 如果该电话号码不存在对应的验证码
//			int batch = ShortMessageUtil.myBatchSend(mobile, code); // 发送验证码
//			if (batch == 0) {
//				checkCodeDao.insCheckCode(checkCodeDB); // 写入验证码表里
//				rm = new ResponseMessage(200, "验证码发送成功", null);
//			} else {
//				rm = new ResponseMessage(402, "验证码发送失败，错误代码为：" + batch + "；",
//						null);
//			}
//		} else if (TimeUtil.compDate(teleCodeDB.getAffectiveTime(),
//				TimeUtil.getAfterTenTimeSceond(9))) {
//			return new ResponseMessage(402, "操作频率过快，一分钟内只能发送一条验证码", null);
//		} else {
//			int batch = ShortMessageUtil.myBatchSend(mobile, code); // 发送验证码
//			if (batch == 0) {
//				checkCodeDao.updateCheckCode(checkCodeDB); // 更新验证码表
//				rm = new ResponseMessage(200, "验证码发送成功", null);
//			} else {
//				rm = new ResponseMessage(402, "验证码发送失败，错误代码为：" + batch + "；",
//						null);
//			}
//		}
//		return rm;
//
//	}
//
//	@Override
//	public String getUserByWXUSER(UserEntity userEntity) {
//		ResponseMessage ResponseMessage=new ResponseMessage(401,"",null);
//		// TODO Auto-generated method stub
////		1、没人邀请，没审核通过，  我跳转到申请代理商页面。
////		2、有人邀请，我没有验证手机登录过， 跳转至登录页面。
////		3、有人邀请，登录过，  直接返回用户信息。
//		UserDB userDB=	userDao.getUserByOpenId(userEntity.getOpenid());
//		Map<String, Object> map=new HashMap<String, Object>();
//		map.put("weiXinUser", userEntity);
//		if(userDB!=null){
//			if(userDB.getPhone()==null)
//			{	
//				/**
//				 * 手机号为空
//				 */
//				map.put("type", "2");
//			}
//			else {
//			NewAgentDB newAgentDB=userDao.getNewAgetByUserNewAgentId(userDB.getNewAgentId());
//			if(newAgentDB!=null){
//				if(newAgentDB.getIstype()==0||newAgentDB.getIstype()==2){
//					/**
//					 * 没有通过申请的
//					 */
//					map.put("type", "1");
//				}
//				else{
//					/**
//					 * 一切正常的
//					 */
//					map.put("type", "0");
//					map.put("user", userDB);
//				}
//			}else{
//		     /**
//		      * 没有邀请的
//		      */
//				map.put("type", "1");
//			}
//			}
//		}
//		else{
//			/**
//			 *根据openId没有查到用户的
//			 */
//			map.put("type", "1");
//		}
//		
//		
//		return (String)map.get("type");
//	}
//	@Override
//	public UserDB getUserByPhone(String phone) {
//		return 	userDao.getUserDBByPhone(phone);
//	}
//	@Override
//	public ResponseMessage getUserXLByUserId(String time, String openId) {
//		ResponseMessage  rpm=new ResponseMessage(401,"openId不存在",null);
//		UserDB  userDB=userDao.getUserByOpenId(openId);
//		if(userDB!=null)
//		{
//			Map<String, Object> map=new HashMap<String, Object>();
//			map.put("userId", userDB.getUserId());
//			map.put("time",time );
//			 int xl=orderDao.getUserNumberAcoountByUserId(map);
//			 Map<String, Object> mapa=new HashMap<String, Object>();
//			 mapa.put("userXL", xl);
//			return	new ResponseMessage(200,"",mapa);
//		}
//		return rpm;
//	}
//
//}